/**
 *
 */
package de.cbf.cam.dsa.person.extension.interfaces;

import java.util.Map;

import de.cbf.cam.dsa.person.entities.PersonBaseDSA;
import de.cbf.cam.dsa.rcp.model.entities.CultureDSA;
import de.cbf.cam.dsa.rcp.model.entities.ProfessionDSA;
import de.cbf.cam.dsa.rcp.model.entities.RaceDSA;
import de.cbf.util.uuidheader.interfaces.INamed;

/**
 * @author salter
 *
 */
public interface IPersonSpecialsGenerator extends INamed{

	public static final String OPTIONAL_PERKS_MIN = "specials.perks.optional.min";
	public static final String OPTIONAL_PERKS_MAX = "specials.perks.optional.max";

	/**
	 * generates specials of the person<br>
	 * f.ex:
	 * <li> -perks
	 * @param person - the person the perks are generated for
	 * @param properties - properties of generation
	 * @param race - resolved race of person
	 * @param culture - resolved culture of person
	 * @param profession - resolved profession of person
	 */
	void generatePersonSpecials(PersonBaseDSA person,Map<String, Object> properties,
			RaceDSA race, CultureDSA culture,ProfessionDSA profession);

}
